User-Space Solutions to Thread Switching Overhead

نویسندگان

  • Raoul Bhoedjang
  • Koen Langendoen
چکیده

Writing communication software, which spends a significant amount of time on handling incoming messages, is difficult: Active Messages are fast, but awkward to use; traditional popup threads are easy to use, but expensive. Therefore, we have implemented a portable, hybrid upcall mechanism that is easier to use than Active Messages, yet avoids unnecessary thread switching. We allow upcalls to block on locks protecting shared data, but disallow blocking on synchronous communication and condition variables. To deal with the latter restriction we use continuations as in [Draves91]. We have incorporated this hybrid upcall mechanism into the runtime system of Orca,an object-based Distributed Shared Memory system. This paper describes the modifications and the performance improvement obtained with the restricted upcall model and continuations. Comparison with the previous version of the Orca runtime system, which uses blocking upcalls, shows that the code restructuring has improved communication performance and reduced memory consumption.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

"Unstable Threads" Kernel Interface for Minimizing the Overhead of Thread Switching

The performance of threads is limited primarily by the overhead of two kinds of switching: vertical switching (user/kernel domain switching) and horizontal switching (context switching between threads). Although these switchings are indispensable in some situations, existing thread mechanisms involve unnecessary switchings on multiprogrammed systems, because of inappropriate interfaces between ...

متن کامل

TECHNICAL REPORT 94-02 A Framework for Minimizing Thread Management Overhead Based on Asynchronous Cooperation between User and Kernel Schedulers

The performance of thread mechanism is dominated primarily by two kinds of thread-switching overheads: vertical switching (user/kernel domain switching) and horizontal switching (context switching between threads). Ideally, vertical switchings should occur only when system calls or external interrupts are invoked. Horizontal switchings within a user address space should occur only when threads ...

متن کامل

Reducing Overhead in Microkernel Based Multiserver Operating Systems through Register Banks

Reduced performance is generally considered to be a drawback of microkernel based multiserver operating systems. The reason for this loss of performance is that typical operating system services, performed by the kernel in traditional systems, are provided by the kernel and several user mode servers in a multiserver operating system. As a result, performing these services requires a number of t...

متن کامل

Provably Efficient Two-Level Adaptive Scheduling

Multiprocessor scheduling in a shared multiprogramming environment can be structured in two levels, where a kernel-level job scheduler allots processors to jobs and a user-level thread scheduler maps the ready threads of a job onto the allotted processors. This paper presents two-level scheduling schemes for scheduling “adaptive” multithreaded jobs whose parallelism can change during execution....

متن کامل

The Impact of Inexpensive Communication on a Commercial RPC System

Distributed object systems and the underlying remote procedure call layers which implement them have been engineered for expensive communication (high overhead, low-speed networks with unreliable delivery). The architecture of these RPC systems embody design choices that incur communication overhead , obviating the beneets of inexpensive communication (low overhead, low latency, high bandwidth)...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995